package 创建型模式.生成器模式.demo.builders;

import 创建型模式.生成器模式.demo.cars.CarType;
import 创建型模式.生成器模式.demo.components.Engine;
import 创建型模式.生成器模式.demo.components.GPSNavigator;
import 创建型模式.生成器模式.demo.components.Transmission;
import 创建型模式.生成器模式.demo.components.TripComputer;

/**
 * @author <a href="eric_zheng@lanzuo.com.cn">eric</a>
 * @version 1.0.0
 * @description: 分步制造汽车
 * 在本例中， 生成器模式允许你分步骤地制造不同型号的汽车。
 * 示例还展示了生成器如何使用相同的生产过程制造不同类型的产品 （汽车手册）。
 * 主管控制着构造顺序。 它知道制造各种汽车型号需要调用的生产步骤。 它仅与汽车的通用接口进行交互。 这样就能将不同类型的生成器传递给主管了。
 * 最终结果将从生成器对象中获得， 因为主管不知道最终产品的类型。 只有生成器对象知道自己生成的产品是什么。
 */
public interface Builder {

    Builder setCarType(CarType type);

    Builder setSeats(int seats);

    Builder setEngine(Engine engine);

    Builder setTransmission(Transmission transmission);

    Builder setTripComputer(TripComputer tripComputer);

    Builder setGPSNavigator(GPSNavigator gpsNavigator);
}
